去中心化应用(Decentralized Application)

[TOC]

1.1 什么是Dapp(去中心化应用)

  • Dapp是一种互联网应用,其后端在去中心化的点对点网络上运行,且源代码是开源的。网络中不存在能够控制Dapp的节点。

  • 什么是分布式应用?

    分布式应用指的是应用分布在多个服务端上。

1.1.1 去中心化应用的优点

  • 1.分布式容错
  • 2.中心化,防止第三方打扰。
  • 3.可信度高,不被第三方控制。

1.1.2 去中心化应用的缺点

  • 1.bug修改和Dapp更新困难。
  • 2.去中心化的用户身份验证困难。
  • 3.应用通常独立于第三方API。

1.2 去中心化自治组织 (Decentralized Autonomous Organization)

DAO是由计算机程序代表的组织,完全透明,完全由股东控制,不受政府影响。

  • 什么是去中心化自治公司(DAC)。

1.3 DApp中的用户身份

  • 数字证书。一个用来证明公钥所有权的电子文档。

数字证书的原理是什么?

1.4 DApp中的用户账户

  • Dapp和中心化应用不一样,DApp没有以用户名和以密码为基础的账户功能。因为密码不能证明账户中的数据变化是由账户所有者发出的请求导致的。

  • 最热门的方式是使用公钥-私钥对(public-private key pair)来代表一个账户。改变账户中的数据,用户需要用私钥签名。

1.5 访问中心化应用

DApp需要从中心化应用中抓取数据。但主要问题是DApp如何知道从一个域名中抓取的数据有没有中间人的篡改,数据是否是真实的反应?

根据DApp架构的不同,解决办法也有所不同。

例如在以太坊中:
智能合约不能直接发出HTTP请求,为了访问中心化API,可以使用Oraclize服务作为中间人
Oraclize为从中心化服务智能合约中抓取的数据提供TLSNotary验证

1.6 DApp中的内部货币

DApp节点需要硬件和网络资源维持运行。

共识协议决定节点收取多少内部货币。根据共识协议,只有为维护DApp安全和运行做出贡献的那些特定节点可以赚取货币,只进行数据读取的节点没有回报。

为什么数字货币有价值。
根据经济学原理,有供需差就有价值。

DApp中内部货币的缺点:
唯一缺点,DApp不能再免费使用了。

1.7 什么是授权的DApp

授权的Dapp不对所有人开放。授权的DApp继承了免权限DApp的全部属性,但需要权限才能参与到网络中。各种授权的DApp用到的权限系统不同。

1.8 热门的DApp

1.8.1 比特币

  1. 什么是账本
    账本的本质就是交易列表。

  2. 什么是区块链
    区块链(blockchain)是用于创建去中心化账本的数据结构。

  3. 比特币合法吗?

  4. 为什么使用比特币

1.8.2 以太坊

以太坊(ethereum)是一个去中心化平台,可以在其上运行使用智能合约编写的DApp。一个或多个智能合约可以一个构建DApp。以太坊智能合约是在以太坊上运行的程序。智能合约完全按照程序运行,杜绝了停机,中心化操控,欺诈和第三方干涉的可能性。

以太坊有一种内部货币叫做以太币(ether)。部署智能合约或者执行智能合约函数需要用到以太币。

1.8.3 超级账本项目

超级账本(hyperledger)致力于开发创建授权的DApp技术。Hyperledger fabric是Hyperledger项目的一个实现。其他Hyperledger实现还有InterSawtooth和R3 Corda等。

fabric是一个去中心化的授权平台,它允许在其上运行授权的DApp(叫做chaincode,账链代码)。用户需要自己部署fabric实例,然后在其上部署授权的DApp。

Hyperledger使用区块链数据结构。以Hyperledger为基础的区块链目前可以选择没有共识协议(NoaOps协议),或者使用使用个拜占庭容错算法(Practical Byzantine Fault Tolerance, PBFT)共识协议。它有一个特殊节点叫做证书颁发机构,该节点用于控制谁能加入网络和他们能做什么。

1.8.4 IPFS

星际文件存储系统(InterPlanetary File System, IPFS)是一个去中心化的文件系统。IPFS使用分布式哈希表(Distributed Hash Table, DHT)和Merkle有向无环图(Directed Acyclic Graph, DAG)数据结构。

  1. 工作原理
    IPFS文件有4种类型:blob、list、tree、和commit。
  • blob 代表一个实际存储在IPFS中的文件的数据块。
  • list 代表完整的文件,因为它包含blob列表和其他列表。
  • tree 代表目录,因为它包含blob列表、列表、其他树和commit.
  • commit 代表其他文件的版本历史中的快照。
  1. FileCoin

Filecoin是一个类似于IPFS的去中心化文件系统,其中有内部货币激励节点存储文件。
网络中的节点通过赚取Filecoin来租用磁盘空间,在存储/检索文件时,需要花费filecoin。
Filecoin使用区块链数据结构和数据可检索证明(Proof-of-Retrievability, POR)共识协议。

1.8.5 Namecoin

Namecoin是一个去中心的健-值数据库。它也有内部货币,佳作域名币(namecoin)。Namecoin使用区块链数据结构和工作量证明共识协议。

在Namecoin中,可以存储数据的健-值对。为了注册键-值对,需要花费域名币。

Namecoin有一个命名空间(namespace)的功能,允许用户不同种类的秘钥。

1.8.6 达世币

Dash是一种类似比特币的去中心化货币。它使用区块链数据结构和工作量证明共识协议。

Dash的目标是通过是交易几乎瞬间完成并隐藏交易账户的信息来解决上述问题,还可以防止他人用ISP追踪所有者。

Dash中有三中节点,矿工节点(miner node)、主节点(master node)、普通节点(ordinary node)。

  1. 去中心化的治理和预算编制
    主节点使去中心化的治理和预算编制成为可能。由于去中心化的治理和预算编制系统,Dash被称为DAO,因为这是他的确切含义。
  2. 去中心化服务
    主节点提供诸如PrivateSend(提供匿名的混合币服务)、InstantSend(提供几乎即时交易的服务)、DAPI(供去中心化API服务,这样用户不需要运行节点)等服务。 服务证明(Proof of service,Pos)共识协议用于确保主节点在线、应答和更新区块链。

1.8.7 BigChainDB

BigChainDB允许用户部署自己的、授权的或者免权限的去中心化数据库。它使用区块链数据结构以及其他多种特定数据库数据结构。

1.8.8 OpenBazaar

OpenBazaar是一个去中心化的电子商务平台。

1.8.9 Ripple

Ripple去中心化的转账平台。

1.9 总结

学习DApp的概念;
了解DApp的工作原理;
介绍机制能够DApp的工作原理;